Overview of Embedded Systems

Discussion

  • What do you think an Embedded System is? Now that you’ve had a quarter of exposure?

What are Embedded Systems?

  • Avionics flight control system
  • HVAC (Heating, Ventilation, Air conditioning) control unit
  • Nuclear power plant monitor
  • Factory control system
  • Microwave oven control
  • Set-top box
  • Medical heart monitor
  • Anti-lock brakes

Example:

  • ABB Robotics - Picking pancake
  • Mars Courosit

What’s Not an embedded System?

  • Desktop Computer
  • General purpose server
  • Mainframe

What makes it an Embedded System?

  • Embedded systems tend to have:
    • A specific or dedicated purpose
    • A need for high reliability
    • Are often characterized by their throughput and response needs
    • Run on a wide variety of processor architectures and hardware platforms
    • Tend to have long service life
    • What else?

Comparisons

  • Similarities to data processing and desktop systems?
    • Programming Language: C, C++, Java, Assembly, Fortran, LISP, ...
    • Long development cycle
      • software development takes a long time
    • Complexity
    • Scarcity of skilled programmers
    • Developing Software is expensive
  • What else?

Embedded Design Challenges

  • Limited resources
  • Timing constraints
  • Unique and/or unusual hardware
  • Reliability
  • Robustness

Life Cycle Differences

Differences between pure software development vs. embedded/real-time development.

  • Often developed in tandem with hardware
    • The hardware that you are developing on and possibly the hardware that eventually is shipped may differ significantly from the hardware that was planned
    • Hardware isn’t available at the start of the project.
    • Hardware is unstable making software development difficult.
    • Projects often start require extensive bootstrapping process to get the platform up to a useable level.
  • HW, SW, Systems design reviews
  • Formal & informal

Killer of Embedded Projects

  • Inadequate understanding of the system’s requirements by the project members
    • We don’t really know what we are building
  • Stale Requirements
    • Life changes
    • The art comes in figuring out what your customers will want, not today, but when you are ready to ship product.

HW / SW Tradeoff

  • Will you have any input?
    • Do the HW guys run the show?
  • Criteria
    • Look in the Requirements document!
    • Cost, performance, development time, team experience
  • Speed/Performance
    • Will it be fast enough in SW? * Cost:
    • Recurring vs. NRE (Non-recurring engineering)
  • HW == recurring costs
  • SW == NRE
  • Unit volume drives HW costs down

Software Architecture Creating SW Modules

  • Break down into subsystems
  • Processes
  • Modules
  • Threads
  • Functions

Input, Process, Output example

  • Requirements
    • Monitor the ambient temperature of a milling machine, gracefully shut the machine down if the temperature exceeds limit.
  • Spec
    • “Monitor the ambient temperature of a milling machine”.
    • Read the temperature A/D at least once per minute
    • “gracefully shut the machine down”.
  • When shutting the machine off, the system shall first turn off the main motor by setting the main motor output register to zero, pause at least 1 minute, then turn off the system hydraulics by setting the main motor output register to two.
  • Spec:
    • “if the temperature exceeds limit.”
    • At system installation, a limit temperature will be entered by the operator and saved by the system. The system shall verify that the entered temperature is within the range of 120 to 180 degrees F.
  • Example tasks
    • Read temperature A/D
    • Convert reading to degrees F
    • Test temperature against limit
    • Shut down milling machine
    • Turn off main motor
    • Turn off hydraulics

Implementation

  • Iterative approach
  • implementation to specs to requirements
  • Get on the HW as soon as possible
  • Perform end-to-end tests as soon as possible
  • Formal Test and QA